<script>
    // 不同数据类型的赋值区别：
    // 基本数据类型按值传递:把值拷贝一份赋给新变量，修改新的变量的值不会影响旧的。
    // 引用类型按址传递：把变量的内存地址（引用）赋值新变量，修改新的变量的值会影响旧的

    let a = 1;
    let b = a; // 按值传递
    b = 2;
    console.log(a); // 1
    console.log(b); // 2

    let user1 = ["吃饭", "睡觉"];
    let user2 = user1; // 按址传递

    user2.push("写代码");
    console.log(user1);
    console.log(user2);

    let obj1 = { name: "发哥" };
    let obj2 = obj1; // 按址传递
    obj2.name = "字母哥";
    console.log(obj1);
    console.log(obj2);


    // 基本类型比较的值
    // 引用类型比较的是内存地址（引用）
    console.log(1 === 1); // true
    let a1 = {};
    let a2 = {};
    console.log(a1 === a2); // false
    let b1 = [];
    let b2 = [];
    console.log(b1 === b2); // false
    let c1 = { name: 'ZZC' }
    let c2 = { name: 'ZZC' }
    console.log(c1 === c2); // false
</script>